#pragma once
#include "token.hpp"
#include <string>
#include <vector>
#include <unordered_set>

extern const std::unordered_set<std::string> KW;

struct Lexer {
    std::string s;
    int i = 0, line = 1, col = 1;
    std::vector<Token> out;

    explicit Lexer(std::string src);
    char peek();
    char get();
    void push(TokType t, std::string lex, int l, int c);
    void lexAll();
};
